﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace WindowsGame1
{
    class Personagem : Objeto3D
    {
        KeyboardState keyboardAtual, KeyboardAntigo;


        public Personagem(Model modelo)
            : base(modelo)
        {

        }

        //Função Update
        public override void Update(GameTime gameTime)
        {
            moverPersonagem();
            limitarPosicao();
            verificarTiro();
            

            base.Update(gameTime);
        }

        private void verificarTiro()
        {
            keyboardAtual = Keyboard.GetState();

            if (keyboardAtual.IsKeyDown(Keys.Z) && KeyboardAntigo.IsKeyUp(Keys.Z))
            {
                TiroManager.CriarTiro(this.posicao);
            }

            KeyboardAntigo = keyboardAtual;
        }


        //Função de movimento do personagem
        private void moverPersonagem()
        {
            if (Keyboard.GetState().IsKeyDown(Keys.Right))
            {
                posicao.X += 0.3f;
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.Left))
            {
                posicao.X -= 0.3f;
            }
        }

        //Função que limita a posição horizontal do personagem
        private void limitarPosicao()
        {
            if (posicao.X > 35)
            {
                posicao.X = 35;
            }
            else if (posicao.X < -35)
            {
                posicao.X = -35;
            }

        }

    }
}
